<?php
declare (strict_types = 1);

namespace app\model;

use think\Model;

/**
 * @mixin \think\Model
 */
class AdminModel extends Model
{
   // protected $table = 'test';

    protected $name = 'test';




    // 设置字段信息
    protected $schema = [
        'id'          => 'int',
        'name'        => 'string',
        'date'      => 'date',
       // 'score'       => 'float',
        'create_time' => 'datetime',
        //'update_time' => 'datetime',
    ];

    //类型转换
    protected $type = [
        'status'    =>  'integer',
        'date'  =>  'datetime',
        'score'     =>  'float',
        'info'      =>  'array',
    ];


//    public function __get($name)
//    {
//
//        return '自动调用了__get():字段'.$name;
//    }

    /**
     * 查询后
     * @param $model
     * @return Model|void
     */
    public static function onAfterRead($model)
    {
        //dd(23,$model->getData());


//        foreach ($model->getData() as $v){//dd($v);
//            if ($v['name'] == 'aaa'){
//                $v['name'] = '牛逼';
//            }
//        }
//
//        return $model;
    }

    /**
     * 获取器
     * @param $value
     * @return string
     */
//    public function getStatusAttr($value): string
//    {
//        $status = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];
//
//        return $status[$value];
//    }

    /**
     * 获取器
     * @param $value
     * @param $data
     * @return string
     */
    public function getNameAttr($value,$data): string
    {
        if ($value == 'wmm'){
            $res = '万明明';
        }else{
            $res=strtoupper($value);
        }
        return $res;
    }

    public function getStatusTextAttr($value,$data): string
    {

        if ($data['name'] == 'wmm'){
            $res= '管理员';
        }else{
            $res= '非管理员';
        }

        return $res;
    }




    /**
     * 修改器
     * @param $value
     * @return string
     */
    public function setNameAttr($value): string
    {
        return strtoupper($value);
    }

    /**
     * 搜索器
     * @param $query
     * @param $value
     * @param $data
     * @return void
     */
    public function searchNameAttr($query,$value,$data)
    {
        $query->where('name','like',"$value%");

        if (isset($data['sort'])) {
            $query->order($data['sort']);
        }
    }
}
